namespace ETestIT.Core
{
    using NHibernate.Validator.Constraints;
    using SharpArch.Core.DomainModel;

    public class Candidate : Entity
    {
        [NotNullNotEmpty]
        public virtual string FirstName { get; set; }

        [NotNullNotEmpty]
        public virtual string Surename { get; set; }

        public virtual CandidateCategories Category { get; set; }

        [NotNullNotEmpty]
        public virtual string Email { get; set; }

        [NotNullNotEmpty]
        public virtual string Phone { get; set; }

        [NotNull]
        public virtual JobTitle ProfileTitle { get; set; }

        public virtual void AssignJobTitle(JobTitle jobTitle)
        {
            ProfileTitle = jobTitle;
        }


        public virtual void AssignCategory(CandidateCategories category)
        {
            Category = category;
        }

        public virtual void AssignPHone(string phone)
        {
            Phone = phone;
        }

        public virtual void AssignEmail(string email)
        {
            Email = email;
        }

        public enum  CandidateCategories
        {
            Employees,
            External,
        } ;
    }
}